iT邦幫忙

2021 iThome 鐵人賽

DAY 24
3
自我挑戰組

C# 雞礎觀念系列 第 24

[Day24]C# 雞礎觀念- 物件導向(oop)~建構方法(Constructor)

  • 分享至 

  • xImage
  •  

老闆我要一個豬排漢堡,
不要番茄,不要小黃瓜,
洋蔥加量,加起司,
現實生活中,我們常常會在點餐時跟老闆指定一些配料,
而不是餐點上了,才把不喜歡的挑掉,
C#世界中,也有這樣的點餐方式,
那就是所謂的建構方法

建構方法/images/emoticon/emoticon31.gif

  • 在我們創建物件時,系統為物件的成員分配記憶體,然後通過建構方法來初始化物件的成員變數

1. 默認建構方法 : 每個類別都有一個默認的與類別同名的建構方法

  • 建構方法總是存在的,即使沒有特別顯示定義,編譯器也會為類別分配一個默認的建構方法
  • 每當類別實例化時,每個成員都會在記憶體分到內存空間,並寫存入初始值
    EX:
    整型變數 初始 >> 0
    實型變數 初始 >> 0.0
    布林變數 初始 >> false
    字串變數 初始 >> null

範例:我們建立一個豬的類別來看看結果

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{

    class Program
    {
        static void Main(string[] args)
        {
            Pig pig = new Pig();
            Console.WriteLine("name = " + pig.name);
            Console.WriteLine("age = " + pig.age);

            Console.ReadKey();
        }
    }
    //豬的類別
    class Pig
    {
        //名稱
        public string name;
        //年齡
        public int age;
    }
 }

結果:

name =
age = 0

2. 帶參數的建構方法

※建構方法是一種特殊涵式,她必須和類別同名,並且沒有返回類型(連void也沒有)

範例:我們修改一下豬類別吧

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{

    class Program
    {
        static void Main(string[] args)
        {
            //使用建構方法
            Pig pig = new Pig("肥嘟嘟一隻豬", 3);

            Console.WriteLine("姓名: " + pig.name);
            Console.WriteLine("年齡: " + pig.age);

            Console.ReadKey();
        }
    }
    //豬的類別
    class Pig
    {
        //名稱
        public string name;
        //年齡
        public int age;

        //使用建構方法
        public Pig()
        {
            //初始化變數
            name = nameValue;
            age = ageValue;
        }
    }
  }

結果:

姓名: 肥嘟嘟一隻豬
年齡: 3

https://ithelp.ithome.com.tw/upload/images/20210925/20097001st53NPtdIy.png

3.無參數建構方法

  • 當我們定義建構方法後,默認的函數就失效了,如果想繼續用無參數建構方,就必須顯式定義

範例:我們在修改一下豬的類別

   using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{

   class Program
   {
       static void Main(string[] args)
       {
           Pig pig = new Pig();
           Console.WriteLine("name = " + pig.name);
           Console.WriteLine("age = " + pig.age);
           Console.ReadKey();
       }
   }
   //豬的類別
   class Pig
   {
       //名稱
       public string name;
       //年齡
       public int age;

       //使用建構方法
       public Pig()
       {
           //初始化變數
           name = "肥肥一隻豬";
           age = 20;
       }
   }
  }

結果:

name = 肥肥一隻豬
age = 20

以上就是我們今天的建構方法,期待大家在點餐前就能想好自己要什麼了


上一篇
[Day23]C# 雞礎觀念- 物件導向(oop)~屬性(Property)
下一篇
[Day25]C# 雞礎觀念- 共產主義者~靜態成員
系列文
C# 雞礎觀念32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言